/**
 * 给定一个长度为 n 的整数数组 height 。有 n 条垂线，第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明：你不能倾斜容器。

 

示例 1：



输入：[1,8,6,2,5,4,8,3,7]
输出：49 
解释：图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为 49。
示例 2：

输入：height = [1,1]
输出：1

来源：力扣（LeetCode）
链接：https://leetcode.cn/problems/container-with-most-water
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */

/**
 * @param {number[]} height
 * @return {number}
 */
// 这个时长太高，不推荐
var maxArea1 = function (height) {
    //容积 = 底X高 即X * Y
    let length = height.length;
    let maxR = 0
    for (var i = 0; i < length; i++) {
        let curH = height[i]
        for (var j = i + 1; j < length; j++) {
            let itemH = height[j]
            let tempMaxH = Math.min(curH, itemH)
            let width = j - i
            maxR = Math.max(maxR, tempMaxH * width)
        }
    }

    return maxR
};

var maxArea = function (height) {
    //双指针 ,
    let length = height.length
    let l = 0
    let r = length - 1
    let maxR = 0
    while (l < r) {
        let tempMax = Math.min(height[l], height[r]) * (r - l)

        //谁小指针加1
        if (height[l] < height[r]) {
            l++
        } else {
            r--
        }

        maxR = Math.max(maxR, tempMax)
    }

    return maxR
};